package com.reliable.service.serviceimpl;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.reliable.api.dto.ReliableExportPushRecord.PushStatusStatisticsDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.reliable.service.mapper.ReliableExportPushRecordMapper;
import com.reliable.service.domain.ReliableExportPushRecord;
import com.reliable.service.service.IReliableExportPushRecordService;

/**
 * 导出推送记录Service业务层处理
 *
 * @author ruoyi
 * @date 2025-10-30
 */
@Service
public class ReliableExportPushRecordServiceImpl extends ServiceImpl<ReliableExportPushRecordMapper, ReliableExportPushRecord> implements IReliableExportPushRecordService {

    @Autowired
    private ReliableExportPushRecordMapper reliableExportPushRecordMapper;

//    /**
//     * 查询导出推送记录
//     *
//     * @param id 导出推送记录主键
//     * @return 导出推送记录
//     */
//    @Override
//    public ReliableExportPushRecord selectReliableExportPushRecordById(Long id) {
//        return reliableExportPushRecordMapper.selectById(id);
//    }
//
//    /**
//     * 查询导出推送记录列表
//     *
//     * @param reliableExportPushRecord 导出推送记录
//     * @return 导出推送记录
//     */
//    @Override
//    public List<ReliableExportPushRecord> selectReliableExportPushRecordList(ReliableExportPushRecord reliableExportPushRecord) {
//        return reliableExportPushRecordMapper.selectReliableExportPushRecordList(reliableExportPushRecord);
//    }
//
//    /**
//     * 新增导出推送记录
//     *
//     * @param reliableExportPushRecord 导出推送记录
//     * @return 结果
//     */
//    @Override
//    public int insertReliableExportPushRecord(ReliableExportPushRecord reliableExportPushRecord) {
//        return reliableExportPushRecordMapper.insert(reliableExportPushRecord);
//    }
//
//    /**
//     * 修改导出推送记录
//     *
//     * @param reliableExportPushRecord 导出推送记录
//     * @return 结果
//     */
//    @Override
//    public int updateReliableExportPushRecord(ReliableExportPushRecord reliableExportPushRecord) {
//        return reliableExportPushRecordMapper.updateById(reliableExportPushRecord);
//    }
//
//    /**
//     * 批量删除导出推送记录
//     *
//     * @param ids 需要删除的导出推送记录主键
//     * @return 结果
//     */
//    @Override
//    public int deleteReliableExportPushRecordByIds(Long[] ids) {
//        return reliableExportPushRecordMapper.deleteBatchIds(java.util.Arrays.asList(ids));
//    }
//
//    /**
//     * 删除导出推送记录信息
//     *
//     * @param id 导出推送记录主键
//     * @return 结果
//     */
//    @Override
//    public int deleteReliableExportPushRecordById(Long id) {
//        return reliableExportPushRecordMapper.deleteById(id);
//    }
//

    /**
     * 获取一周内每天的推送数据统计
     * @return 每天推送数量的统计列表
     */
    @Override
    public List<Map<String, Object>> getWeeklyPushData() {
        return reliableExportPushRecordMapper.getWeeklyPushData();
    }
    
    /**
     * 根据时间范围统计各推送状态的数量
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return 各推送状态的数量统计
     */
    @Override
    public List<PushStatusStatisticsDTO> getPushStatusStatistics(Date beginTime, Date endTime) {
        return reliableExportPushRecordMapper.getPushStatusStatisticsAsDTO(beginTime, endTime);
    }
    
    /**
     * 根据时间范围统计各错误信息的数量
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return 各错误信息的数量统计
     */
    @Override
    public List<Map<String, Object>> getErrorMessageStatistics(Date beginTime, Date endTime) {
        return reliableExportPushRecordMapper.getErrorMessageStatistics(beginTime, endTime);
    }
}